package com.echat.messagesender.sender.bean;

import com.echat.commonlib.exception.exc.ValidateFailedException;
import lombok.Data;
import org.springframework.util.Assert;

import java.io.Serializable;
import java.util.Arrays;
import java.util.Map;

/**
 * Created by chenmohan on 2018/08/16
 *
 * @description
 */
@Data
public class EchatSendSmsInfo implements Serializable {

    /**
     * 【必填】客户id,消息发送服务分配的唯一标识
     */
    private Long userId;

    /**
     * 【选填】平台账号id,该值不为null时,使用指定的账号发送短信
     */
    private Long platformAccountId;

    /**
     * 【至少填1个】接收人电话号码，可以多个
     */
    private String[] phonoNos;

    /**
     * 短信内容 ,如果填写了 模板id ,那么该字段值无效
     */
    private String smsContent;

    /**
     * 使用到的模板消息id，没有可以不填
     */
    private String templateId;

    /**
     * 短信模板参数值
     * 比如vars中存在元素 {"code":"123"} ,那么短信模板为"您的验证码为${code}"中的${code}会被替换成123
     */
    private String vars;
    
    public void check() {
        if(this.userId == null){
            throw new ValidateFailedException("EchatSendSmsInfo -- 'userId' must not be null");
        }
        if(phonoNos == null || phonoNos.length == 0){
            throw new ValidateFailedException("【至少填写1个】接收人电话号码");
        }
        if(smsContent == null && templateId == null){
            throw new ValidateFailedException("短信内容(smsContent)或者模板ID(templateId) 其中必填1个");
        }
    }

}
